Major update.. Fixes #17, fixes #18, resolves #26, resolves #27, resolves #33, resolves #34, resolves #35, resolves #36, resolves #37