add web features, refactoring reflection core