updated with basic React components