Initial version, supports registering and recording