         moveDown()
     }
 
-    private func adjustSize() {
-        view.frame.size = size
-    }
-
-    private func adjustInitialPosition() {
-        initialCenterY = view.center.y
-    }
-
     private func moveUp() {
         view.setVerticalPoint(to: size.height, duration: ClapprAnimationDuration.mediaControlShow)
     }
 
-    private func moveDown() {
-        view.setVerticalPoint(to: hiddenHeight, duration: ClapprAnimationDuration.mediaControlHide)
+    private func moveDown(with duration: TimeInterval = ClapprAnimationDuration.mediaControlHide) {
+        view.setVerticalPoint(to: hiddenHeight, duration: duration)
     }
 
     private func addTapGesture() {

        super.render()

        adjustSize()
        moveDown()
        adjustInitialPosition()
    }

    override func onDrawerShow() {

class BottomDrawerPlugin: DrawerPlugin {
    private var initialCenterY: CGFloat = .zero

    override var position: DrawerPlugin.Position {
        return .bottom
    }

    override var size: CGSize {
        return CGSize(width: coreViewFrame.width, height: coreViewFrame.height/2)
    }

    private var minYToShow: CGFloat {
        return coreViewFrame.height * 0.75
    }

    private var hiddenHeight: CGFloat {
        return coreViewFrame.height - placeholder
    }

    required init(context: UIObject) {
        super.init(context: context)
