Implement majority of intended functionality