wrapping things up, stil have errors and bugs