input hooks
split module&uploader out