working basic entity component