better controller apis