spec and guard added