simplified structure // better naming // full view