written spec and lib