Add documentation + refact specs a bit