more refactoring

using invisible rectangles instead of sprites to save memory and reduce
code