changed some types. Added basic drive routine