write core class(not implement)