most registration functionality is done