Changed things completely, committing before switching over to new impl