better application structure