this could be written inline in the header