more refactoring, todo: issues dynamically loading blocks