some refactoring, also introduced render objects factory