@turbo-ele please refactor this with the next pull request!