implement the reflection