add traits for common functions