Spec init and guard init