trying to clean up
done with reflection