encapsulated log in widget