changed class visibility since it must be directly referable