updates by @kevgo