for basic usage its more logical, others can extend it