better constructors and readme