refactored out the "fallingBlock" behaviour into a class; factored out "shape" behaviour somewhat