Initial commit

Must fix view formatting and improve code design.