refactor this super app