add some cool feature with reflection using :)