added skeleton login function