new api
separate class file for the dock