logic changes and ui stuff