implemented more core classes