more function and specs added