updated to support custom styles