support named arguments and custom colors