custom up and down events