add registration functionality