basic registration framework