modules and Snake implemented