Sorry for the quick bump, but perhaps you'd like to know that I've managed to fix it myself (mostly).
http://pastebin.com/m7c499dc9
Problem (2) in my original post remains. How can I make sure Furnishing f (line 10) is always instantiated without doing something ugly like making a dummy Aquarium? Furnishing is abstract.