basic functionality works, needs styling