requiring php>=5.4 due to use of traits