style changes and optional hash on type