finished functionality and basic styling