shortened
modified majorly