Implementaion through duplication.
DRYed some parts.