tweaked cup following and added knock function