added melt and cast
most work done