adding caller init and cast method. THX mike