moved generic components