Implement abstracts, closes #9