refactor: major refactor, mainly everything is promise based now