Add layout and operations. closes #1, closes #2, closes #3