Initial implementation of GA