updates / refactor