deprecated user api
re-organised controller code