major refactoring, move to angular