preliminary code structure2