Added supervised pre-training methods for smaller datasets, lots of improvements a bit everywhere.