improved application structure