not hardcode components