Soliton dynamics for a general class of Schrodinger equations