some refactoring, dawns of UBO implementation