Made sure it could work as a mixin and added some documentation