add docking station and refactor