cleanup, begin abstraction (starting with tip) so others can define styling