add methods that return layer id and promise